Entity Framework Core পরিচিতি

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) ডেটা অ্যাক্সেস (Data Access) |
222
222

Entity Framework Core (EF Core) হলো একটি ওপেন সোর্স, ক্রস-প্ল্যাটফর্ম ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক, যা .NET Core অ্যাপ্লিকেশনগুলোর জন্য ডেটাবেস অ্যাক্সেস সহজ করে তোলে। EF Core-এর মাধ্যমে ডেভেলপাররা সম্পর্কিত ডেটাবেসের সাথে কার্যকরীভাবে কাজ করতে পারেন, তবে তারা SQL কোড না লিখে C# কোড ব্যবহার করে ডেটাবেস অপারেশনগুলো সম্পাদন করতে পারেন। এটি LINQ (Language Integrated Query) ব্যবহার করে ডেটা রিট্রাইভ, ইনসার্ট, আপডেট এবং ডিলিট করার সুবিধা দেয়।

EF Core মূলত Entity Framework এর পরবর্তী ভার্সন, যা .NET Core প্ল্যাটফর্মের জন্য বিশেষভাবে উন্নয়ন করা হয়েছে এবং পূর্ববর্তী ভার্সন থেকে আরও বেশি দ্রুত, ছোট ও ক্রস-প্ল্যাটফর্ম সমর্থনকারী।


EF Core এর প্রধান বৈশিষ্ট্যসমূহ


  1. Object-Relational Mapping (ORM)
    EF Core সম্পর্কিত ডেটাবেসে (যেমন SQL Server, SQLite, PostgreSQL ইত্যাদি) থাকা ডেটাকে C# ক্লাস বা অবজেক্ট হিসেবে মডেল করে। EF Core এ অবজেক্টগুলো মডেল এবং ডেটাবেস টেবিলগুলোর মধ্যে ম্যাপিং (mapping) করে। উদাহরণস্বরূপ, ডেটাবেসের একটি Product টেবিল EF Core এর মাধ্যমে Product ক্লাসের সাথে সম্পর্কিত হবে।
  2. Cross-Platform Support
    EF Core .NET Core অ্যাপ্লিকেশনের জন্য তৈরি হওয়ায় এটি উইন্ডোজ, লিনাক্স এবং ম্যাকOS-এ কাজ করতে পারে। তাই, এটি ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশনে ব্যবহৃত হতে পারে, যেমন ASP.NET Core অ্যাপ্লিকেশন।
  3. LINQ (Language Integrated Query)
    EF Core LINQ সাপোর্ট করে, যার মাধ্যমে C# কোডের মধ্যেই ডেটাবেস কোয়েরি করা সম্ভব। এটি ডেভেলপারদের SQL কোড না লিখে সিম্পল C# কোডে ডেটাবেস অপারেশন করতে সাহায্য করে। উদাহরণস্বরূপ:

    var products = context.Products
                           .Where(p => p.Price > 100)
                           .ToList();
    
  4. Migrations (ডেটাবেস মাইগ্রেশন)
    EF Core মাইগ্রেশন ফিচার দিয়ে ডেটাবেসের স্কিমা পরিবর্তন সহজভাবে ম্যানেজ করা যায়। যখন মডেল ক্লাসে কোনো পরিবর্তন করা হয়, তখন EF Core মাইগ্রেশন ব্যবহার করে ডেটাবেসে সেই পরিবর্তনটি প্রয়োগ করা যায়। এটি ডেটাবেস সংস্করণ নিয়ন্ত্রণের মতো কাজ করে।
  5. Lazy Loading and Eager Loading
    EF Core ডেটাবেস রিলেশনশিপ হ্যান্ডল করতে Lazy Loading এবং Eager Loading সাপোর্ট করে। Lazy Loading হলে সম্পর্কিত ডেটা তখনই লোড হবে যখন তা প্রয়োজন হবে, আর Eager Loading-এ সম্পর্কিত ডেটা একসাথে লোড হবে।
  6. Change Tracking
    EF Core স্বয়ংক্রিয়ভাবে ডেটা পরিবর্তন ট্র্যাক করে। ডেভেলপাররা যখন মডেল অবজেক্টে ডেটা পরিবর্তন করেন, EF Core তা জানে এবং ডেটাবেসে সেই পরিবর্তনগুলো সেভ করার জন্য প্রস্তুত থাকে।
  7. Support for Raw SQL Queries
    EF Core ডেভেলপারদের Raw SQL কুয়েরি লেখার সুবিধা দেয়। যদি কোন পরিস্থিতিতে LINQ দিয়ে কোয়েরি করা সম্ভব না হয়, তবে সরাসরি SQL কোড ব্যবহার করা যেতে পারে।

EF Core এর কার্যপ্রণালী


EF Core ডেটাবেসের সাথে যোগাযোগ করার জন্য সাধারণত DbContext ক্লাস ব্যবহার করা হয়, যা ডেটাবেসের সাথে ইনটের‌্যাক্ট করতে ডেভেলপারকে সাহায্য করে। DbContext ডেটাবেসের সাথে সম্পর্কিত মডেল ক্লাসগুলো (Entities) এবং ডেটাবেস টেবিলের মধ্যে ম্যাপিং করে।

DbContext এর উদাহরণ

public class ApplicationDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }
    public DbSet<Customer> Customers { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("ConnectionStringHere");
    }
}

এখানে, Product এবং Customer দুটি মডেল ক্লাস, যেগুলো ডেটাবেসের টেবিলের সাথে ম্যাপ করা হয়েছে। OnConfiguring মেথডে ডেটাবেসের সংযোগ স্ট্রিং (Connection String) কনফিগার করা হয়।


EF Core দিয়ে ডেটাবেস অপারেশন

EF Core ব্যবহারের মাধ্যমে ডেটাবেসে ডেটা Create, Read, Update, এবং Delete (CRUD) অপারেশন করা যায়।

1. Create (ডেটা সন্নিবেশ)

var product = new Product { Name = "Laptop", Price = 1000 };
context.Products.Add(product);
context.SaveChanges();

এখানে, Product অবজেক্ট তৈরি করা হয়েছে এবং Add মেথডের মাধ্যমে ডেটাবেসে সন্নিবেশিত হয়েছে।

2. Read (ডেটা পড়া)

var products = context.Products.Where(p => p.Price > 500).ToList();

এটি Price 500 এর বেশি এমন সকল Product অবজেক্ট রিটার্ন করবে।

3. Update (ডেটা আপডেট)

var product = context.Products.First(p => p.Id == 1);
product.Price = 1200;
context.SaveChanges();

এটি Id = 1 এর Product অবজেক্টের মূল্য পরিবর্তন করবে এবং SaveChanges মেথডের মাধ্যমে সেই পরিবর্তন ডেটাবেসে সেভ করবে।

4. Delete (ডেটা মুছতে)

var product = context.Products.First(p => p.Id == 1);
context.Products.Remove(product);
context.SaveChanges();

এটি Id = 1 এর Product অবজেক্ট ডেটাবেস থেকে মুছে ফেলবে।


EF Core-এর সুবিধা

  1. Rapid Development: EF Core ডেভেলপারদের SQL কোড লিখতে বাধ্য না করে, C# কোড ব্যবহার করে ডেটাবেস পরিচালনা করতে সহায়তা করে, যা ডেভেলপমেন্টের গতিকে দ্রুত করে।
  2. Strongly Typed Queries: EF Core LINQ সাপোর্ট করে, যার ফলে কোডে ভুল হওয়া সম্ভাবনা কমে এবং Compile-time checking হয়।
  3. Automatic Change Tracking: ডেটা পরিবর্তন ট্র্যাকিং সুবিধা স্বয়ংক্রিয়ভাবে নিশ্চিত করে, যা ডেটাবেসে আপডেট করতে সহায়তা করে।
  4. Cross-Platform: EF Core .NET Core-এর সাথে ক্রস-প্ল্যাটফর্ম সাপোর্ট করে, যার ফলে একাধিক প্ল্যাটফর্মে অ্যাপ্লিকেশন ডেভেলপ করা যায়।
  5. Migrations Support: EF Core মাইগ্রেশন সিস্টেম ব্যবহার করে ডেটাবেস স্কিমা আপডেট করা সহজ হয়।
  6. Rich Querying Capabilities: EF Core তে LINQ সাপোর্ট ছাড়াও, Raw SQL, Stored Procedures, এবং Views ব্যবহার করার সুবিধা রয়েছে।

সারাংশ

Entity Framework Core একটি শক্তিশালী ORM ফ্রেমওয়ার্ক যা ডেভেলপারদের SQL কোড লিখা ছাড়াই ডেটাবেস অপারেশন সম্পাদন করতে সহায়তা করে। এটি ডেভেলপমেন্টে গতি আনে, কোডের সঠিকতা বাড়ায় এবং ডেটাবেস স্কিমা ও ডেটা ম্যানেজমেন্ট সহজ করে। EF Core বিশেষভাবে .NET Core অ্যাপ্লিকেশনের জন্য ডিজাইন করা, যা ক্রস-প্ল্যাটফর্ম সাপোর্ট করে এবং মাইগ্রেশন ও ডেটাবেস অপটিমাইজেশনের সুবিধা দেয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion